{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "0Du4ubO6qRhT"
   },
   "source": [
    "# Assistant bot with OpenAI's Swarm\n",
    "This example shows a customer service bot that has two parts: one for interacting with users and another for providing help. It includes tools to assist in these tasks. The run_demo_loop function helps us create an interactive demo session.\n",
    "\n",
    "## Overview\n",
    "The support bot has two main parts:\n",
    "\n",
    "1. **User Interface Agent**: This part interacts with users at first and directs them to the help center based on what they need.\n",
    "2. **Help Center Agent**: This part offers detailed help and support using various tools and is connected to a LanceDB VectorDB to retrieve documents."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "KF5vrbYIqu1G"
   },
   "source": [
    "![Screenshot from 2024-10-24 11-47-07.png]()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "l3oebXsJqFB0"
   },
   "source": [
    "## Install requirements"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "eZseOsVups6N",
    "outputId": "e45c3283-f9ec-47e2-ae9f-bf3ed9adda0d"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m27.1/27.1 MB\u001b[0m \u001b[31m50.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m30.4/30.4 MB\u001b[0m \u001b[31m18.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m480.6/480.6 kB\u001b[0m \u001b[31m21.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m116.3/116.3 kB\u001b[0m \u001b[31m7.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m179.3/179.3 kB\u001b[0m \u001b[31m12.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m134.8/134.8 kB\u001b[0m \u001b[31m8.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m194.1/194.1 kB\u001b[0m \u001b[31m12.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25h\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n",
      "gcsfs 2024.10.0 requires fsspec==2024.10.0, but you have fsspec 2024.9.0 which is incompatible.\u001b[0m\u001b[31m\n",
      "\u001b[0mCollecting git+https://github.com/openai/swarm.git\n",
      "  Cloning https://github.com/openai/swarm.git to /tmp/pip-req-build-y08wdobn\n",
      "  Running command git clone --filter=blob:none --quiet https://github.com/openai/swarm.git /tmp/pip-req-build-y08wdobn\n",
      "  Resolved https://github.com/openai/swarm.git to commit 9db581cecaacea0d46a933d6453c312b034dbf47\n",
      "  Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n",
      "  Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n",
      "  Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",
      "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from swarm==0.1.0) (1.26.4)\n",
      "Requirement already satisfied: openai>=1.33.0 in /usr/local/lib/python3.10/dist-packages (from swarm==0.1.0) (1.52.2)\n",
      "Requirement already satisfied: pytest in /usr/local/lib/python3.10/dist-packages (from swarm==0.1.0) (7.4.4)\n",
      "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from swarm==0.1.0) (2.32.3)\n",
      "Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from swarm==0.1.0) (4.66.6)\n",
      "Collecting pre-commit (from swarm==0.1.0)\n",
      "  Downloading pre_commit-4.0.1-py2.py3-none-any.whl.metadata (1.3 kB)\n",
      "Collecting instructor (from swarm==0.1.0)\n",
      "  Downloading instructor-1.6.3-py3-none-any.whl.metadata (17 kB)\n",
      "Requirement already satisfied: anyio<5,>=3.5.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.33.0->swarm==0.1.0) (3.7.1)\n",
      "Requirement already satisfied: distro<2,>=1.7.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.33.0->swarm==0.1.0) (1.9.0)\n",
      "Requirement already satisfied: httpx<1,>=0.23.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.33.0->swarm==0.1.0) (0.27.2)\n",
      "Requirement already satisfied: jiter<1,>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.33.0->swarm==0.1.0) (0.6.1)\n",
      "Requirement already satisfied: pydantic<3,>=1.9.0 in /usr/local/lib/python3.10/dist-packages (from openai>=1.33.0->swarm==0.1.0) (2.9.2)\n",
      "Requirement already satisfied: sniffio in /usr/local/lib/python3.10/dist-packages (from openai>=1.33.0->swarm==0.1.0) (1.3.1)\n",
      "Requirement already satisfied: typing-extensions<5,>=4.11 in /usr/local/lib/python3.10/dist-packages (from openai>=1.33.0->swarm==0.1.0) (4.12.2)\n",
      "Requirement already satisfied: aiohttp<4.0.0,>=3.9.1 in /usr/local/lib/python3.10/dist-packages (from instructor->swarm==0.1.0) (3.10.10)\n",
      "Requirement already satisfied: docstring-parser<0.17,>=0.16 in /usr/local/lib/python3.10/dist-packages (from instructor->swarm==0.1.0) (0.16)\n",
      "Requirement already satisfied: jinja2<4.0.0,>=3.1.4 in /usr/local/lib/python3.10/dist-packages (from instructor->swarm==0.1.0) (3.1.4)\n",
      "Collecting jiter<1,>=0.4.0 (from openai>=1.33.0->swarm==0.1.0)\n",
      "  Downloading jiter-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.6 kB)\n",
      "Requirement already satisfied: pydantic-core<3.0.0,>=2.18.0 in /usr/local/lib/python3.10/dist-packages (from instructor->swarm==0.1.0) (2.23.4)\n",
      "Requirement already satisfied: rich<14.0.0,>=13.7.0 in /usr/local/lib/python3.10/dist-packages (from instructor->swarm==0.1.0) (13.9.3)\n",
      "Requirement already satisfied: tenacity<10.0.0,>=9.0.0 in /usr/local/lib/python3.10/dist-packages (from instructor->swarm==0.1.0) (9.0.0)\n",
      "Requirement already satisfied: typer<1.0.0,>=0.9.0 in /usr/local/lib/python3.10/dist-packages (from instructor->swarm==0.1.0) (0.12.5)\n",
      "Collecting cfgv>=2.0.0 (from pre-commit->swarm==0.1.0)\n",
      "  Downloading cfgv-3.4.0-py2.py3-none-any.whl.metadata (8.5 kB)\n",
      "Collecting identify>=1.0.0 (from pre-commit->swarm==0.1.0)\n",
      "  Downloading identify-2.6.1-py2.py3-none-any.whl.metadata (4.4 kB)\n",
      "Collecting nodeenv>=0.11.1 (from pre-commit->swarm==0.1.0)\n",
      "  Downloading nodeenv-1.9.1-py2.py3-none-any.whl.metadata (21 kB)\n",
      "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from pre-commit->swarm==0.1.0) (6.0.2)\n",
      "Collecting virtualenv>=20.10.0 (from pre-commit->swarm==0.1.0)\n",
      "  Downloading virtualenv-20.27.1-py3-none-any.whl.metadata (4.5 kB)\n",
      "Requirement already satisfied: iniconfig in /usr/local/lib/python3.10/dist-packages (from pytest->swarm==0.1.0) (2.0.0)\n",
      "Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from pytest->swarm==0.1.0) (24.1)\n",
      "Requirement already satisfied: pluggy<2.0,>=0.12 in /usr/local/lib/python3.10/dist-packages (from pytest->swarm==0.1.0) (1.5.0)\n",
      "Requirement already satisfied: exceptiongroup>=1.0.0rc8 in /usr/local/lib/python3.10/dist-packages (from pytest->swarm==0.1.0) (1.2.2)\n",
      "Requirement already satisfied: tomli>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from pytest->swarm==0.1.0) (2.0.2)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->swarm==0.1.0) (3.4.0)\n",
      "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->swarm==0.1.0) (3.10)\n",
      "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->swarm==0.1.0) (2.2.3)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->swarm==0.1.0) (2024.8.30)\n",
      "Requirement already satisfied: aiohappyeyeballs>=2.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.1->instructor->swarm==0.1.0) (2.4.3)\n",
      "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.1->instructor->swarm==0.1.0) (1.3.1)\n",
      "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.1->instructor->swarm==0.1.0) (24.2.0)\n",
      "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.1->instructor->swarm==0.1.0) (1.5.0)\n",
      "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.1->instructor->swarm==0.1.0) (6.1.0)\n",
      "Requirement already satisfied: yarl<2.0,>=1.12.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.1->instructor->swarm==0.1.0) (1.17.0)\n",
      "Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp<4.0.0,>=3.9.1->instructor->swarm==0.1.0) (4.0.3)\n",
      "Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.10/dist-packages (from httpx<1,>=0.23.0->openai>=1.33.0->swarm==0.1.0) (1.0.6)\n",
      "Requirement already satisfied: h11<0.15,>=0.13 in /usr/local/lib/python3.10/dist-packages (from httpcore==1.*->httpx<1,>=0.23.0->openai>=1.33.0->swarm==0.1.0) (0.14.0)\n",
      "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2<4.0.0,>=3.1.4->instructor->swarm==0.1.0) (3.0.2)\n",
      "Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1.9.0->openai>=1.33.0->swarm==0.1.0) (0.7.0)\n",
      "Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/python3.10/dist-packages (from rich<14.0.0,>=13.7.0->instructor->swarm==0.1.0) (3.0.0)\n",
      "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/python3.10/dist-packages (from rich<14.0.0,>=13.7.0->instructor->swarm==0.1.0) (2.18.0)\n",
      "Requirement already satisfied: click>=8.0.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0.0,>=0.9.0->instructor->swarm==0.1.0) (8.1.7)\n",
      "Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/python3.10/dist-packages (from typer<1.0.0,>=0.9.0->instructor->swarm==0.1.0) (1.5.4)\n",
      "Collecting distlib<1,>=0.3.7 (from virtualenv>=20.10.0->pre-commit->swarm==0.1.0)\n",
      "  Downloading distlib-0.3.9-py2.py3-none-any.whl.metadata (5.2 kB)\n",
      "Requirement already satisfied: filelock<4,>=3.12.2 in /usr/local/lib/python3.10/dist-packages (from virtualenv>=20.10.0->pre-commit->swarm==0.1.0) (3.16.1)\n",
      "Requirement already satisfied: platformdirs<5,>=3.9.1 in /usr/local/lib/python3.10/dist-packages (from virtualenv>=20.10.0->pre-commit->swarm==0.1.0) (4.3.6)\n",
      "Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/python3.10/dist-packages (from markdown-it-py>=2.2.0->rich<14.0.0,>=13.7.0->instructor->swarm==0.1.0) (0.1.2)\n",
      "Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/python3.10/dist-packages (from yarl<2.0,>=1.12.0->aiohttp<4.0.0,>=3.9.1->instructor->swarm==0.1.0) (0.2.0)\n",
      "Downloading instructor-1.6.3-py3-none-any.whl (69 kB)\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m69.4/69.4 kB\u001b[0m \u001b[31m317.7 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25hDownloading pre_commit-4.0.1-py2.py3-none-any.whl (218 kB)\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m218.7/218.7 kB\u001b[0m \u001b[31m15.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25hDownloading cfgv-3.4.0-py2.py3-none-any.whl (7.2 kB)\n",
      "Downloading identify-2.6.1-py2.py3-none-any.whl (98 kB)\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m99.0/99.0 kB\u001b[0m \u001b[31m9.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25hDownloading jiter-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (318 kB)\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m318.9/318.9 kB\u001b[0m \u001b[31m19.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25hDownloading nodeenv-1.9.1-py2.py3-none-any.whl (22 kB)\n",
      "Downloading virtualenv-20.27.1-py3-none-any.whl (3.1 MB)\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.1/3.1 MB\u001b[0m \u001b[31m61.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25hDownloading distlib-0.3.9-py2.py3-none-any.whl (468 kB)\n",
      "\u001b[2K   \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m469.0/469.0 kB\u001b[0m \u001b[31m31.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
      "\u001b[?25hBuilding wheels for collected packages: swarm\n",
      "  Building wheel for swarm (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",
      "  Created wheel for swarm: filename=swarm-0.1.0-py3-none-any.whl size=26001 sha256=96dda8970a55a6a8126a1cdbeac38d851c86377316b432f281d8ace8dabde629\n",
      "  Stored in directory: /tmp/pip-ephem-wheel-cache-ajq90ruf/wheels/46/9a/f7/7b8bbb674ae80ef0f62a632706c2c4cdfcf708e4da32e4e256\n",
      "Successfully built swarm\n",
      "Installing collected packages: distlib, virtualenv, nodeenv, jiter, identify, cfgv, pre-commit, instructor, swarm\n",
      "  Attempting uninstall: jiter\n",
      "    Found existing installation: jiter 0.6.1\n",
      "    Uninstalling jiter-0.6.1:\n",
      "      Successfully uninstalled jiter-0.6.1\n",
      "Successfully installed cfgv-3.4.0 distlib-0.3.9 identify-2.6.1 instructor-1.6.3 jiter-0.5.0 nodeenv-1.9.1 pre-commit-4.0.1 swarm-0.1.0 virtualenv-20.27.1\n"
     ]
    }
   ],
   "source": [
    "!pip install lancedb openai datasets -q\n",
    "!pip install git+https://github.com/openai/swarm.git"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "EzOcDlVapoa-"
   },
   "source": [
    "## set OPENAI Key as Env variable"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "id": "UOduKSbEpHAA"
   },
   "outputs": [],
   "source": [
    "import os\n",
    "\n",
    "os.environ[\"OPENAI_API_KEY\"] = \"sk-proj-.....\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "PIef_yvopAal"
   },
   "source": [
    "## Prepare and Ingest dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 1000,
     "referenced_widgets": [
      "1496fa475e7a4384bd45f1de7a233436",
      "4b2f723ad10546d5a500ddc69ecf7b4a",
      "16dad57dc487403db147d083439864eb",
      "0c1fb37539934d5f867faa50dbdd0099",
      "9dd3fc638a664eccb8dbbd47e2b6a0b2",
      "8444ccee050b424c9cf3c20c825b7c6a",
      "d76e506476d342dbac113b8d3e770a3c",
      "92f8d49161ec4681a76461d5a4070a2c",
      "ab7bc4e5b1be45f0bf316b6d95c7b3c4",
      "20a0d951f52f478091e4c3d4a5322db2",
      "ae0ce9dca5f2490581987b84ab98ec58",
      "1e1a82996a3249ac9ca5f7464ca1e876",
      "6b9ad3e41f0b43c4b864c84d14e2616c",
      "259583cd5a78452d8f5b840c8ebcc0a9",
      "f2a4548e02344c5380ab698cea7387b2",
      "06edb23b793a4e17999b1dbbd8000b3b",
      "9f24959dad0a417eb7c744dc5045d929",
      "5a05da55fa2243aabe6dd824b2bb4fa9",
      "b3fe93742f0641d9b74246f62f283523",
      "ba0c9a22041248e09667259d1c54f623",
      "7c538fbe71fb47a78e24418c75234a6e",
      "c1cf304d6c174436b3459f0763d8a6b0",
      "915e4bebf7d0431f9d48d229732e2342",
      "45ac77b310ee431f8c7d98ba01c8ad5f",
      "68672eb5cf504bbe80de45924b476480",
      "101f68b2a7924c1684b14f4c7e41b2c9",
      "da9bac10ea7c4f7cbabd70ea9e68c0ac",
      "e1ee6e65b0eb4720aed4ba20bfcc828b",
      "5e544bc04250472d84930627c2fa80ff",
      "3dfdfb3dab7b4918b74c488d60a5f002",
      "46a8470a215c475ea1a78cf2afec71e2",
      "a1b61576b8334af2bfca486aef1b7043",
      "e8cee7c7f40a4147aef6466c5990144e",
      "c19186591570473fbce6bd3e59f6775a",
      "644eba4053dc49a39ae683b061826ce4",
      "7698b985ce264a18b643b1f64cc48114",
      "4fef898643684e48b481759056d8e116",
      "19500fba4cba4706b4199ab1fcc1109f",
      "de0d31c328d545a2a49022ce49ff0c84",
      "06e926bc5d164ad7b9565e4b58be5008",
      "6e1a614b1085414fba6877ee49aaaec3",
      "1542245bd6f7490a8c31f4baf0f7d475",
      "158d17f038b94556b70e9b5f67fb5610",
      "39f139acb58648bb9124ca857a47ae6b",
      "a58526e069634916992e1687f12d4383",
      "2d7967f2eb1c4d5d91468d073d0084d4",
      "4612d02589694415ae555fb8f2ce4c8c",
      "aeea6d0c340a43ea8ca82e26e1dabb58",
      "f12413eb3a0247f7b6dbdda22e8b280d",
      "e5af557d20954d07858e9e2a01fdf397",
      "afab831f1bcf43a0a2b801cad619331a",
      "45cb1dd903ae468d9a130d9522e82b5f",
      "b853fcc5579c4ec38ecff6147513e6f7",
      "195311d4640d4cafbf679380429dd365",
      "d8d4dc2a4dee48caad50e500f6625b0c",
      "df69933c34f54ff48d38dba213f9c53f",
      "b56d10d8b4d847e4b39df0521b44e48a",
      "ea7bdd8b07d543b995159746a9e2cb30",
      "12d555aa00d64330b64d1388ea29b681",
      "6237571be25c455c9cd537cf26388e11",
      "df865aad85bb4fbc931079e2dc2c42b0",
      "597e88ff01344acf9a850c147f9f9035",
      "5d24a47ecf884f7698edc4328a5f32dd",
      "3d413a1fb2f745c18566e10085880df5",
      "2785eb1652af4b6ab4733bbc9044aa92",
      "a52445316ea24ae09eac8b32c1db984d",
      "54d5cf5a3a2c4e28af61616a2848c51d",
      "429cc927e1dc45fc9902bd9bf5d65bbb",
      "f4607975d068454db5a7c2ebbd972b12",
      "122de1d554b344caa4d982a630e5f1b5",
      "4d1bea0682044fb0810736c1c4a0ddeb",
      "aa62ea61f77b4a1293911476f75d588e",
      "fc8124c9a2c0474894390f838cd8b19b",
      "d407707fa887417498e631df22252ae9",
      "f9b7f4bf93cc4936b322f92691edc2d9",
      "d3694db8742e473f876e8425f02f4102",
      "9b4c546b58584bd1a638495cd851945d",
      "004f851050d544dab22fc2fcfcf439da",
      "14d30c957acc48d098ef784d579dc49a",
      "0bb69ede799f4616b1f7ca61ba079fff",
      "d093414aa4914e5c991076e4a0a82b5c",
      "756d137a6faa44bdaf41fb15b75f5fea",
      "ea08d89e75b945fca61b8c3a51848198",
      "407e0bad73d74913b18dcb0b77870655",
      "b1122f916f784b57989632e0e720fdba",
      "cf7f7139eee044119c431b0cc9c786dc",
      "3a06a9a562a44964aeb5ca8164da308d",
      "e6f9ce7fde654c37a15a8523ac40645c",
      "67da3517559f42338fb6c38dee73ef67",
      "290789e092044f1aac9c1dc45d468fd3",
      "b7796d05fc2d450c88ef4a4f9cac5e0c",
      "ad39c0801ca54e7a9285bb77c99a01f8",
      "dd7393523d254353af44c9f32aca9305",
      "6dda2c3d10d647e1b9dd7451928cbe33",
      "4f76c6c104b344478e3e4dc5863d2914",
      "ed1af20fea1e4f78b8a97dc4c7cf5d39",
      "01f7a2a78833435583979dcfb67ad542",
      "576ec4da51f2417fa07cadc83d6cdf72",
      "48679a59cefb4fb2bfbe7ada0c391d27",
      "3a5c1b1aea6241989625d496017d2f45",
      "27e6d826b0644025aa7625ebdfe8fbfc",
      "ae73a6043fe141c59e96b924a1c4f244",
      "b9a2dc8561fe49f589cc3b5d01575397",
      "53b50b568a014e3c87d0a676f1a5515b",
      "22059fd2f954402d9b7b981ec5746369",
      "1fba9fd95d5e4c3dab340124526a21cf",
      "e78ccb037ed745d38dd5c04093990223",
      "38079b523f9a425caf320298871a9e96",
      "ad9a62e3123049d3b8e809fc5c87b94a",
      "75ee0f9aad2b4c91b13c82278db31d4f",
      "ca62ef9919de4fadb24f2bf90583732b",
      "4f1032cb2c59446094b67b5bc12811f5",
      "820749c21cc1491aa7168c1814896a9c",
      "eee74dedd073428b9be5d4974d4dae55",
      "3e04476f1d1f47a7a2b6472b2af3cb05",
      "480c3f7e8c014a6c8a1c44e0a084bd05",
      "5611d5395fb348c183699f705ffbbb14",
      "8c4f2cfe9ade4f979d2c4ac76c749da7",
      "19cd72bf75c340c69fd9c5353475d153",
      "51828c28fb324d9cb7a7785b6119cbab",
      "a46ecffc389e4538a4a8c6b43e6a4b94",
      "e651b4db6a0840dd837c72ade9578223",
      "2a52d45d83f7489ea11109a95665d3d4",
      "8624f2d663794f02b4f1946237839275",
      "00688f2007014ecaae6b1bcadff74217",
      "0176434c6e08417393c562694fab3c26",
      "79a907a170434e1e98d730d11e1752eb",
      "d81037eda5714a5eaee0f2120dd8106a",
      "6150563044fb40ec8a168b8574ee2c0d",
      "dff21103ad3b4ec682982af6c5bbe3c0",
      "a62e33eda37d4582bd83eb5999d43597",
      "851d3fd4e6f94880becb6d8cc3ddb924",
      "923d0c27ced947dfadf8ec315cf1bd9a",
      "44b16bcfb3084e09aabdc06f1ca15c23",
      "53de81049bac4fba8b140dc1713704be",
      "e49cd97af47c42b0b098ccb6053f3790",
      "eefc360a1bfd4f48b6b7caa2a058d5cf",
      "1b4cc59f056c45898bae005f29792c1e",
      "cb2a281d781d4fd292800630e48a62e3",
      "dd0b0bb6368a4d698dfae758268fa928",
      "cf6d1399adf44ad0bb98383348c6442f",
      "06574ce003a846d2a5d9e768268f1062",
      "87e389d03c4842ba8f1f5ffe529d7e0b",
      "131f29da9f324f32bcdea4313554001b",
      "492f40f436a640dc84dfabd9bbe08314",
      "7b7e1e96a97b4848b9c150143653386e",
      "88949cfbef8c45f6bdd81728fd7ee7e4",
      "70f4d40aae704f33af198e49c6af34ca",
      "d3fdacb8916442cb97cb02f4f06a8e73",
      "dc997648c9e54184840a2c784c262f73",
      "f8930ece59ad46c6ba371154f790026f",
      "a0b1801937824c3cbdd053567ee6e21a",
      "52c046bd1d514fa9baad4913b6e30f67",
      "cb0451ff3f5b4f79aa804fbf8826fa71",
      "e5e484663e7b4c40ac9da190046c8378",
      "bf8288403c1046aa84869df9cbe3f3c1",
      "1bf9d8e1527c4cc2854014c4fcfb5fbc",
      "a641bef00b97416bb2b9d7428abd4850",
      "1068d542e5bd477d96cfbbbf3eb70be7",
      "e2b9d6db0c35461f84efa676f5500f96",
      "6924eda618df4480a69adba4f2e9604d",
      "14382b426cd04d2e8b694a7c52fedabe",
      "a7179ec8c30a4833847bb35c25ad043d",
      "37cffb291788455b9d480f0be2d36b47",
      "c76fb1bd06e74a9ab0f6399778390c6d",
      "d431c25a517b42848d1d3e6f0584ccc4",
      "bed7526925f345b9abe9317a7dec5771",
      "861d7b4f29074851a75b397c16e18e73",
      "02b3db50e697453888cd70cfae9491ce",
      "a88df425ca90418d9ef48ea5a009d01c",
      "4dcc0cfe30154bf680f56a2e33ec2d24",
      "d88ef085c8ff4e639a509f8500d0f686",
      "0bd6d856b0414fe1b269e82ac79b97c0",
      "2683612147534e2fbdfffe109d7fa79f",
      "2e844985290c4491821954e3573f69c7",
      "e758275e76f240c18eb12885ff8f69fb",
      "375f681a177b43f2a86da62873ce458b",
      "a131860a7ea74862859f5efd0b8efa71",
      "2702dbfefdad480ab72b55436fc128b3",
      "0419f468d3f642b89cd0cc6846d6215b",
      "96ffdfcc0c974afc826b40d5b656a665",
      "15dc33ffb46b4a2e84b06ab620248ad2",
      "b5b513502c3c407d99e3df6d4d69685a",
      "eddae97147314af79eec29e4eff29f55",
      "a668c278480c40689a0d89c87568e9ab",
      "eead7e1a72104e51810a3bb6534bf27d",
      "125825035dc343f8aab91a4e3b8da5e7",
      "5eb58b2d990344918adf0c0a5761650e",
      "8bea9f1cb97a487fb08309c318f38b66",
      "e392d338c72949c08564c7cfdd93b5ff",
      "be42b5231a9e49229d65dd235cb8a5e5",
      "bb1d6ed2d98d4e249f30ec4777fcfb77",
      "bed6e9ad1ae2468ea608d46892b69e7f",
      "c62e4c7f9bf345419763b8cbb1156d75",
      "245e40b5a4d248a38d8eb70b5c0123ad",
      "953ea283c1134a65af8381c940ea24b2",
      "9012a31500704552890cafba16f8b623",
      "4d169673befc49c1af34eca3baaba1de",
      "524c0358619848af9f4c003921d93eff",
      "b4cbc17a81cf453ba79d9454b7b41db7",
      "7636e5385a7c4868840191799cda8257",
      "84f9e7548eb14a389cf5534d12f5b380",
      "8c9dd723f9d245c2a1193019a6438597",
      "884b886e57b54819b1279f39144c7273",
      "299412c2e2964cb7a5fbfc30a5c4cd33",
      "5e73835136ec43a3bae66166345320ce",
      "214a2d2583d849878651ac214bd13c6b",
      "adb4ec8a5b874ef597430653f5255963",
      "89e38627dc864ca587d1c019226d2da0",
      "c5ec88cb6a02473bb07578fefa381ec1",
      "b650ce2df59b4a619b1e3eaf82a55d0b",
      "2c16c37c484b4417a58c0d2b08f88293",
      "1f7d5491dc3c4b6f82bf36942367f8b7",
      "fa0d481a40ac46b3a1cea034ec558313",
      "1fdf6300cfc44fe9ad69e4b07f70a99b",
      "e31867f42d8444cbb989660b7eecdb2a",
      "0cc04bee1d7644538af63fa4e8f45148",
      "2799530f2ab54ba09b90d97fcb060b91",
      "77c433008e624ffd919acc579766d5cd",
      "2eebb4c4027f48d2b3c495f4bb2b4d1f",
      "c45c2c5531bb4ecf814573da5fbf98a9",
      "f80cdaf86c6a4b6eb0e51ad4a1e052d2",
      "f1067b27e079444682fc43db4b627525",
      "e24d9b354b074945a6e8a40d7e548546",
      "4da27773e55f4786ac182740a9b675c3",
      "42c49202ff5946deba6c46d4c090e01a",
      "1957d25ba8a54930a42d74d0bb273d00",
      "aec2634f77f2418f98d0626bdc83ca5c",
      "e7b70f10f18a451d9d3748b82d7c8a77",
      "18084718434f44429a41aafa805cdda1",
      "b249116b2da0426097ed57062090c3b4",
      "60bd1cf8b7b5467ca9357c5d7b19c6c4",
      "7e1b9ebf4f674b4c96afb3866a5566dd",
      "40c212f16ae447d1a07817abec6fc643",
      "65522727985042519e1de01dbb98b583",
      "27c32343cb1741058dec313cfd473e3c",
      "2f4b3410aeb54fdea417e3d82cfbc1b5",
      "ac59ca08580f480dbc563f4985dfee5e",
      "2905b6ae609a4815a3d6d6829db80e44",
      "f86585d56fb3482ebf1c1540c25888f1",
      "a95afc0b3d8a4beb8b36f7fcef37fdea",
      "3950428c56474e0bba56f4b4b1ba19f7",
      "63bbca2d680848589177d0e7687713dc",
      "1f2780ea7a864efab9657d7020956790",
      "85021d38b2094487bdaded9c65c2a67a",
      "bec0e17b4d2d47b1b97cd00202265231",
      "770f694e4a564d9ead62e4c5a1b046b5",
      "e601f030632d44499709b26cdad483d7",
      "6b8a26c82c3d481c8cf5279ae022409f",
      "31e0fb6de7594c16978e8bfec5723ecd",
      "42d868f89e644d2db6cd906d5255067e",
      "01bbb06c01164ca8b6f93b34d2a667d3",
      "9c65d09168be4851825348a694d41b03",
      "c714fdc8d75c425c81ba91923d71480d",
      "7e423740bb8f4531b474676d2e942a89",
      "73a1b94065554eb29f091e07e58dda27",
      "235e6fcfbcb343f2be2fe1c5751ce3f3",
      "477074977ed9473cba0c7e6d5b9054bf",
      "7934f28097e84c36aefe5d94e2a2c02a",
      "947e32527c26477796604d5d69350b9b",
      "87bf4f5a10fc40da86ee07ffc2662988",
      "68bb5bceacb74ccab1449683d0abf0dd",
      "ec487be6a1f843a3ba5d573251977dca",
      "82b54b95cda041e08c691b84cb0ac8ac",
      "2aefbacdedcf433b9bde08be21fa308e",
      "457879b4f62c4f8e96dce8cb42ac1506",
      "8daa6cfafcc644cb92068e17fb9c4a81",
      "c13e75ff18c248299b6c2d88076b7824",
      "7fb1ae1224594a4eaaac60830f6f3439",
      "67f5b463b36c4ba2b18047fdbf858316",
      "633e91ef550e4139b4062af5d0d8fb11",
      "191c7736a7a64a82b15eeb5aaa4bbc7c",
      "b2499ff7e5bc464da24a707c6a21edf2",
      "1c561fe31fc34962ab5645c4fd1bb6ce",
      "38f56010d44f4043a29795049e17c256",
      "3c6b680c0faf4c71b1d49f0f5f7cef1f",
      "8b1dffb59c7f4052a0e5bb05a28756fb",
      "4316b0480e6845058150b5c149225513",
      "88b1e3dab9bf478a81f0cacd1f86c3d0",
      "d3b44a67957846818ce71d1adf924852",
      "36ff9d12ea8147b685c4e174708ad3a3",
      "b6f5d93ec50c48d1a3986e5a8d390a7c",
      "a216389b0aed4e13baef1123cbdaa90c",
      "917c2a314d2b4711b5bc7c4c6f8c0bf7",
      "1e76075b3ee54c01a8e1e3570c9f229c",
      "a6c168f5862c4a51aa1e65300b59b6b4",
      "728155a9c756404aad9619216386d7e5",
      "7b9a57c379874121ba96bf0f85915028",
      "3040577816af4f31965782b3d28d19cc",
      "1fc18c74c0e3473d8fa843e3f86382cd",
      "990d629e90b04c52a09cead07c53bd15",
      "43b2110c41ef4f139e0531ddb5918b63",
      "c1ab9a78a6884fc79d7638bb801b61c0",
      "3ecb63fb69a44ab19d823a6be77c0dac",
      "baadf79f6c0144c79f1bb30f8b21f7a5",
      "134cc83b0eda4d1887b404270b9bc4a3",
      "bc895da7ded9476ba2f6cb724b1b859c",
      "5931ad08687543a8b4587e241a2a7d37",
      "c7499f45ec2241aaa5a88759dfbc0097",
      "9c842511d57047ed828009a173ffadd7",
      "51e95c28d5974e978fe8bab2d9666627",
      "db8d72f26584480fbad7562fa00684e0",
      "00e0663576444f3aa1fb28a73bacb926",
      "a4a0f411fbb1426989f92220e0f50b53",
      "32296248b5ab4b6d83549e2e8c7e0740",
      "c228e9a0006742fc903dbbd8deac5ae0",
      "e4ee851f589c43eda2570c22c6ce567d",
      "88e3f042bc8840d79ffc3311a18a8cbb",
      "88d330bad7324949ac0f97474651768f",
      "c488c8c96b3b4468bc3d79a6d2e7cbf6",
      "1c120e1fe47e4adc9a5209cf7f547c9a",
      "d5ad3ee701fc4e34806b731ce348b9aa",
      "704853fc46e849f4a75d4456168934a9",
      "64f4d321d88541cab4afc99297f7055f",
      "c764a97f32ce425ca7e96bb1ba6483f8",
      "3476aa362f1348b68c540969ba0c612a",
      "dbf456e968714a16ad01cea8a7e244ed",
      "504d3a7b49fb407793948ad89ac1a18c",
      "22d498c4d5964782b805458a12aff8bd",
      "0a29c540be7a4c7b93387cd48aa51489",
      "a075caa5e2e9423b8d9219a6c8414c8a",
      "81d4013d77774b039604cca1bb88e560",
      "d079a051cb3748ddae4022952790b7ac",
      "f83e67f4d80b436aad035559f8e2f436",
      "4328f501c6c84991bf5bffbfb5526930",
      "8f328e023423407b9fbfe48197670ee2",
      "8a887f617d084f64920626221ebdd313",
      "4f68591ea1db48faae1f9a1264d0c52a",
      "90c93d7ebd7a41408e40ba0661f9704b",
      "7f05c53929d04cb8b76cfabc213c59db",
      "22db1df151584313b8083b013ab2ecd9",
      "775e4596ad2548e08fdbe41b8c440e97",
      "b90a3f9bf1074ed2ad8204ce6b63c7cd",
      "1a2220052bcb43bf80e96fee604b75a1",
      "6449365fb28e466285455bda1c3a292e",
      "ef8dde0108ba45108ac481e5e0312cf3",
      "735971d8e3a94dc2b2141ae345b09aaa",
      "ff2ae11d783b4f8cb4e0cc8537d44db1",
      "acfd4bf21ac24866a82ce95a3f04925d",
      "a971797667fa41dab3041e4f4a015fbf",
      "d26b39bb9a684a5c9994ef7fd48c9f3c",
      "6db5d0f165ed42fda0cb02a4437f3b98",
      "127b2f657d594a48b0b228bb916da09a",
      "7979aac22591410898fc2e2720420c8d",
      "14b7af80efc14b639620ca5d2659c1bf",
      "2193891304fe48bd9af358f88302bcf6",
      "b2455c6d647542d7ae699adb2c194caa",
      "5f468e2d36fa4998bd1b5fc3be1e4c53",
      "6ad85a3a7097434aaef40e8bcb39dc4e",
      "cb9697f9504246a9ae47d2752ff0b2eb",
      "53a859add7734508ad452bf73c3c9828",
      "e6313db35ab44e4189e2a88785cdbdf8",
      "6c88c1dcfeee49a6950ff6eb049aeb51",
      "0b0aec9d72e84a82b9c98ebce20bf276",
      "d46c8979fae34171a995a79b420814f0",
      "93974e753141462d9cd2fa0f19828b1b",
      "c13830f3f73c4bdf9162201bfd35ae74",
      "dbb6f7470ed44ce4a904697acc0366ce",
      "fe51436c5c7a4d37a5ba07c1d89ef935",
      "401a2956f7a04cbb9036a6ebc4dd1b70",
      "aa55a8f87f0e43cbb1c216742706b64e",
      "e662d55b6d5a4a86be59b3ff4722f8e7",
      "733f54c36c6240dea0a45f042dc6e501",
      "6183a3e38f7947679314c922d064547f",
      "ded92bc30009413fab1b2ef8a1ab861c",
      "3b657d0f51ca42049165d59b4255735a",
      "19c7848bab3245a8a647c0d2a8b1669e",
      "8831101c4cf84a419679d8ff67a595ac",
      "10ec3a6f6c7f4ce1bda39df2fee14d28",
      "3907e14064c04cd69533a2ceb1ecd2b5",
      "df3f8c05a9024bf79938c7320b67528b",
      "d1da9a43aa084864ae1a9362c83ca5fe",
      "50a577a956264825be69e36b7c1eba09",
      "a8c9ecb6b57c4ee6966ce74772a5a142",
      "f021a73c29964feaa3b2ee8c35f4f384",
      "e845069c624b4dc8b0137261bc1474b4",
      "88760f5774c64b6381d0fd9d76cd6fc9",
      "5c7773427cef4f69850cb55f2c32d525",
      "868dfb6c98104ddfbe3b6b68753888ed",
      "18a92c91020f48fc87b8617f3de5eeab",
      "186659283e4747bc95c40436c2b380df",
      "b5745e925bee4b1fb1e6aec2b8a0a344",
      "84d73b1add9a40e1be464cdd06782c61",
      "4d61e7824ef84d95aff0859b5567d662",
      "2bc8cba024924ca8ad7a285fae632277",
      "b7f4ef93d1c54d3aaa86b8429c720f32",
      "27b688744aa848c788b63892c77fde2e",
      "87e3da07683b4a7ca85f38fa3622f015",
      "86f596b3fa4244aba45a632b042bd6d3",
      "4897d4b93cda4f9c9ca1d2ae4473c3bd",
      "89089670b4f64b6a9ad6aac5587f6880",
      "88c2a4eae42c46b496531cdcb0e56ed8",
      "2a9b42712c1c4e8db2fd2e01d8518eb8",
      "b345ac38e24141309b0c08818d9fa70e",
      "8455c199d43f4c4085bf8e511e711a56",
      "34f15ba74f7848859776630250448797",
      "d9bd9ee8e1f74d72abbc982e5b00446b",
      "cc17a01a06754c058f1276a06167149b",
      "67a5a0d7d9244954830cdecc09fd4a18",
      "2b73973bc148498bad81392699f470fd",
      "6202b74475354835ad340994fb4c89de",
      "fda3eae8fd584820891a28608d33d99a",
      "f8b35d2ccab14d498d5f4ed4b32f0c10",
      "e100d842d7704cbbbbf0790e741ffd67",
      "5cd33faa4c3e42009ff66c421421cfbd",
      "e852b8a0968c416da2fffd7237ffb1aa",
      "ac9ee77c754d4a9da0c6faaa956bbe60",
      "455359668a3f4999941a3dcb0204e9a1",
      "4b018090f0a4411bb7b6645df2f20e72",
      "48e4d6efb3c544a2828c38707bbb6619",
      "02f0c8a234aa4f95992fff3ff9866a83",
      "d2596bf440e04338b9bdd529b2bf2a84",
      "658e840e250b467bb0ce5026a962a887",
      "074aefde127e4bafa5190e8112b867fb",
      "8e930de081b940018cfce93c75a258bf",
      "11a0c2ec6b224878bcc2358e6c1beed2",
      "cfbff1fcdff74093804cf253d716c19c",
      "3ff31647a9f749d5bf09802d48e524d2",
      "b844247eabba4197970a8a9b81adac8c",
      "122decab8f1043378c719cb1a847a084",
      "f6969d8d0d614433a1beb9241a509e6b",
      "60a06a909b53493ba83c95a5a4dfdd82",
      "102c3caef7db43ad88298092ec30411a",
      "a9d3aff096634ecfaf0b83ab62503442",
      "07b212f010964e37a64b5d5d4d7e5d66",
      "ab8a314c476742dfac4b55d5da49b74a",
      "de1a487e1a0e4b3a8c5b0e021c7ec1a2",
      "53bc833f070b4b4b93c6b7b99130bb52",
      "6278e711905144eab0dcf1198d935bec",
      "b83d79e49b4d4da081e6969dd46ef8a9",
      "2865d9eb3c4d4671b796a09a85baa52a",
      "e39955afb49640f8881a2a9fb40c2627",
      "23df0bb9206c494aacc1aae38e3f176c",
      "eca8cd2a1c364e3da158600d38e8216f",
      "c03a9a1beec04c5486aeeadc52a5ded0",
      "0e773bd491244021a4d86d81b58e8a81",
      "3d7da2995d06496ba3f782235a5592ab",
      "31bcb169b3ff416cb4ad6382673020be",
      "34af1c0a184848edbea141ade64b0e0f",
      "cac481b87bd84dd5b8411dcb31159520",
      "a040bd32ce1e485c866e04d010936cc6",
      "4c78284a52b54767aca47f41f1142c0e",
      "d2e324f5fcc842649c71dcc7066ca767",
      "f3e6ba455bd3459eb9a2d1312e543bd7",
      "354b3c5511ba4b4aaf0043c5762715b7",
      "063641f2612540579bd906f7f0e4755f",
      "cd6e827b750740769e3f4463efb6d53f",
      "917ad7e07d534d3f98a508829372a1b7",
      "cdfe3010236a43b598afad80102a1a78",
      "64e4efb14e1a4cd5acfa9ae3cca328b9",
      "071359459104424eb5396ee0bd523e3f",
      "3adefcfede1f4756a183237fd9dce055",
      "58956de93c1342b0a27dde20c8c5c52f",
      "a8acf664eeb1402784db2cf721c70c9c",
      "46b5f8e55db546c0b8353b385acba685",
      "6be228ec8be84fc1bc10554e06c91162",
      "51d46fe3079947688d2601a7694cad34",
      "6ed6bfd820634d569fa9c951ac7567ed",
      "695df001d3884c798649bbd70e1610da",
      "ad50d0a036264e80bd474356f35702b7",
      "6d05f73f7aa6430ca1388fc7468b129e",
      "84e1bcd75e0a4735ab1305fd9fd15a64",
      "a13a7f91c4f34017bedc0819654f0814",
      "739c6eb22d5544cf8bb4bf2e9bed9ae1",
      "b7ee447b87874f148eebd921b7d3c9e5",
      "9682e03fb26c4d768f339c1a5b201f90",
      "e8799cd0ec354aebba59ace138c7c146",
      "8d3ce92892cf4ac4af0f5bbdb7a2aa9e",
      "96cff052f1714daa92072c360b2a0e7b",
      "a22b99348e8f47cc8bd03619c5bd6d6e",
      "437ce0b012eb46a1aa493e3777ada98d",
      "721f6b8b59ff466793739b2148d45ca8",
      "37a4847721b643ac890b51de87b864dc",
      "4032c447151946e888b4951b9dbc0834",
      "fb4396a083ba45b693092ffd951dfde8",
      "29f1168a640940f6864b96035bc693ba",
      "beb386e7c5ee4b2e9a3e7766d41f2fd6",
      "9723545836034e4dafd51cf082f2c521",
      "b98a60a7b8ae4df3a9c20fee43348666",
      "36eb0d53f7f8466fb2e03de413e37d1b",
      "6067d00b41ea4759a5604549069cac24",
      "39425e41353d4595bf113e65b5bcb667",
      "3d048c2909934ccf98ff812b9dd6834a",
      "88c3214c136b4b80987f06bfb57c1372",
      "a47cb3c0fbf24eb29dfcd75ef92cc776",
      "5c551904da2f44ec8f547662229c7b57",
      "0048a44edb0447bcba6601f16819883a",
      "2a6fdfd985bc4804a89edc5003a9cd4d",
      "ea940dfdc91f49a7bf50b69c592d048b",
      "f1de9927ba8b47799a16e455953abc5d",
      "8d25df86a8b04f4e960f78cd4844cebb",
      "fde254cfb11746de961fcdfc06b6e816",
      "66c2ef45031f460da69da21e9bd126b7",
      "6dec4eeb2435407abf2a663ba7bea840",
      "741d58c3bc1142d29aa08b00b5172634",
      "829c5c57f1714a28b216d1f53a29d76e",
      "966e4f7dca934a09bdddb92bb0d0be98",
      "9f78a7e96d5b4547b17b845385ea206c",
      "dc832b49a5814519aff8d7f33a7531ca",
      "e3f7720dfc7a4941a32b1a2241f43d69",
      "9d6d0b8d888947d1bcb152f7f5d7e6df",
      "cd589ae610784dfab45c363be6ffd3e0",
      "1d9cf386530d4b0c8fb258ef3a5d2dc7",
      "f694db5702784653a1973230c5eccd05",
      "aae36eb0e4094dce8a576ed41860c3a4",
      "3eb99ebf973b403a8d9e4134d9e8a8ed",
      "402b406d0efe4007a8ad081b13cea037",
      "6f30c2610fb640608a5af17d2fd41762",
      "cadffb4109024affb7a6c08155390520",
      "cedc038e68ed49cf9de85611e9446b85",
      "39d11e571d70451f87bab9d260748672",
      "41cc67f3f4614c4483d40f4a0a773594",
      "ae566a0edac841b28643ed516d0dd9ce",
      "26237843402d4565b88d9be624b4aca8",
      "9ccb828549b04a97a07598b392553c19",
      "e4789177c27f48f59561c708291bf725",
      "3711be48a0514178b0ecd15fcc48f289",
      "99a9d6920a5b468482233275414c5e1a",
      "59ca8ff0302d4aa3a0c4b2bb27be6c8a",
      "1149f578cfad454694ecb7bb434a1621",
      "5f38f61216dc4789bdae23d8fea49dea",
      "faf5dab6b16148b980680b44f32887ab",
      "709bfb54774b406a87d1ad7fef5ffe36",
      "68b718ceb1934c7d88a7a6b1cf7b199e",
      "ae0e142ba8ef4e28827ab102dec6a439",
      "22a613cfc5b34dd38f7528a8dd25a663",
      "20cc5b85b73f4ed996502b33e1a95d25",
      "5bdfa1107a7347a7971eef81d43e8ac7",
      "358ff34b34114033a612d05ad557754a",
      "a7c835ac1d0d454b954be3aa81b11a58",
      "26428e626dca4f4aa590012e73579b73",
      "7f84fb81fe7645caa096ea98557c6d4e",
      "a9c4db8fde96491389f55ef2490d5862",
      "6a7fdc68f6854dcba65742e6373995a2",
      "089a37a2290042ffad9d6b97a98970d9",
      "7f0a939b3a904f1f814a8499143b5e9f",
      "e9942167b7ed41d58b9b24f6e555ff21",
      "aba26d3874b04446aa850c7070cbc9b5",
      "40d219852cd0410998f9e2b3c8f18c95",
      "df20a9ca9c4a4b6ab82f6ad291c1dfd4",
      "3879c54e64b44640a8e9866122c2c39d",
      "f5f7ba240567410f9d6fad51395a4543",
      "27817b0e7dbd4f938a42ec82d6346420",
      "1aacb20fed5c4ddd8d446deacd471545",
      "2f86839576e6459cadcb6c5f3050fab4",
      "3bd2e27bd9df48cfac14b7f3ec32e101",
      "b0c84bee389148ce8d29d7a47e8fa49e",
      "20bd2b8963734cd7b0a652bc56858656",
      "a5f79a05edd8431bb1ec651d27094c22",
      "1c385b984bb645149adad50b57c9f0c2",
      "a2162eeffafd4ead86a82e6926db7805",
      "1fc076df131845e8aaddfeab6d1e4a2c",
      "d944003267e44f8cb663d970812c22ec",
      "77f94bede3734b4fb3193deb104b97d6",
      "9cfd2aaf1fc34481bce09392ec2040e0",
      "a268f7c2e8ad4003ac082c90a3d8f6b4",
      "5ba96c2339094c78a6255e238102eff0",
      "8f3a13cb14f74dc4be2047fdc2b754ed",
      "4c65b44a3b334fb4a84f50755c0eb082",
      "098d7bd1caae43019ca91594225b856a",
      "9c64535ad453446da97022b173ae7a15",
      "519c3a1d29dd4a37a0dd7d6e2b5298ff",
      "28458814bb4a40e7a6547313a43729ca",
      "2a4cc5a8a43c48458fb8193692166d4f",
      "1c0e146440594c2ab64caf4f0142ff53",
      "983f4c22190149b3bb7fe6d093321899",
      "b34f6d6251624979a5d881ba88a1862e",
      "c1f03afef29a4201bfd07403aa266386",
      "1b2c163e754449e0ae0ca49bf5276f96",
      "12d28cb0aec543898a15035e0b259b29",
      "809b4798ed51455c80258d1b2d72930e",
      "b2b70fccc651464eb0209bafa8c0d7e3",
      "e208f9dfb38a42479d3f8d8379efaabe",
      "ee9cccbaf9ff49ce8bc0eba1068215f3",
      "0bbfb7225c544bdabdb5ebfac7728c99",
      "38ad1b2d7f9148b7af671236b7959843",
      "8bebc218416544e7a3d606d6c6f633a8",
      "b2fd8948ecc84fc39593735445f0c901",
      "861a75cd06cf4a45a508205763efb653",
      "1deadf202f074070991b06b1bd03a82a",
      "22eac6385cd9454687112d00c2e790a1",
      "2b6d680f87a14055a591d01d63847b2c",
      "1547e47255074fb8892fd1cd7dbc0157",
      "7047377468a34f8b8d6fec7597247d1a",
      "bc93e55a109d4b539b9878337a20db77",
      "15286c4ae889444384b8b313ebafadd4",
      "778db73a97674bcd9afab389e61fb859",
      "77ab6732738b4cc1b70f1c9d811006ce",
      "41fe94e241274131b56b27c9b5242cbf",
      "a4585a32e0184f999940ecb2a70a03ca",
      "935bcfc2946a40b8be8abbe171c74363",
      "291a0c6ec295404c87b7d829cdb26ab5",
      "cc2f31ac9fbd4ef28b1ccabaaf41c6fc",
      "076560fa4f1446049db51896c80af3dc",
      "f069b7d49c834622bc91ad1d8186faff",
      "e514143837cb459ca718995f4c924917",
      "57de1a27bdcb4ba991a4d3db44633a51",
      "bdba78950aaf4b9d84095a59f19ff3e4",
      "ea6ec38f09fa4751a44c7e4eef4dc4bd",
      "7a56b6b6101a4718ad0b1c1bfb48f11c",
      "68e66f45becf409bb280a348efc7fb8b",
      "d97e3e89b99c46aeb0db9a7dee52ced0",
      "9b8cdfde8bed46d99e73755428c8d984",
      "ae4528fe61c54287b6167830371cc20a",
      "1dbde88c6df34a788af8e8ea247e2846",
      "8f2a0cfb815c4b9584653e4aeeb7c1eb",
      "6b7c54c123da41d1931d167839fda896",
      "731f2c596a574bcb8e571a708b9e3d46",
      "aac9f6b7214242ba82ff1f1fa965810f",
      "804a5ea5b9354cd8b9831f0f083df4cc",
      "0f85ff8ba98b4dfab5791a738630648f",
      "753505a7347e49a4a3350bb1fd90dd70",
      "ec2dcb4cd31046799b856fc53a775335",
      "c9e5a5a5581d442f938f1b68bae2d580",
      "fdc6c6edf0d846bf8440ad88c7d8ed56",
      "ac8f1a0dcb2349cf89ecfd1c9915c6de",
      "ae9ff71d201a4c3fa47b77e403379b40",
      "76fe5f2f5b85438d9707ca53a0c6472f",
      "b7f3ad39157f425fb4bfdbe7b5c99796",
      "4fccd609e1544d68aaf39c76eaa982af",
      "d7375102d11348d2b372ce3bfef9dd34",
      "b5be90fde0094b54b9ff353cc38eab2d",
      "333951d2eebf40559709def4081c713b",
      "0117b8edca3d4865ab85b9fe66dc60a4",
      "83ec0e0d7fb141c1b7b138c5d0eac79c",
      "d9ae7e727db0448aadd0144b49f3c448",
      "74140da06fe3464081349ad3eb485031",
      "29c71b4429044bada4f892e1a1067e10",
      "8c077c02f4c94c9a91e984675220e637",
      "c3c1150b73924df3a3254af589b23d13",
      "922a4c8074c44c3a87d1c20add78ac7a",
      "d2bd159bf29a4f0fb7fd748a2958f76e",
      "c8086cf964094b41bdbf782661292320",
      "55e91e2859a34b69b501909e59dc5ab0",
      "615e68fe5e3840a094307e765a921c0a",
      "148360a0d65a4639a73af062ef609c72",
      "c30af7d0ee2840c9accd90cb810378bc",
      "a7a57d5210184bdeab9db06179b13c54",
      "6b98261938a04434a9bbb1441fa371d7",
      "73c709916d5444849b633a362b19b30b",
      "942f8e407a814875a9d36370bef16b9d",
      "19c08e440f514b2b9cacd0d58c18967c",
      "63a007077dd1425c8bc5c6eb299755ca",
      "e7b03ce421bb4f548cc0d92ca000bd92",
      "e03ed8225e6c4afb9866d52801c455cc",
      "200df76174c9499484924cdd0eb8d28f",
      "398dc30c564e47509e2938a6e32d705d",
      "87cd2e32b43548438d6802062ae4b1c5",
      "31eb2a4b83004c4e8ea099752617b6c0",
      "14246f6118e64df3842e7a476f55153f",
      "09916c7aceb44b81ac524a308559ab89",
      "a2adb7d8f26b44719f1ee5464a64ab98",
      "11a3234d85984d3989ae59dd2416712c",
      "2c117ea461b3409daca11acc0974deca",
      "fb9d19907713455d9cce8a4778ad156e",
      "5b4606ff3b6c481ea78ade33521253dd",
      "8ee807860d8a4b2ca33eaf9fce8b0029",
      "b823713307e948b297f5637e8d5a9114",
      "6e82a0c596234f30b0c999a990765e1c",
      "43591b3d63714b71982e73cfc3346eae",
      "f6dc2ed40db544349f24bddc6100756c",
      "c7eb8e759b2346aa9c8eafaf7c382aac",
      "876b0c095bf84c31a467f9ae4e1f022b",
      "de3682b8bd5243bb995684e31af585cc",
      "e65c483ccf5e42179e4ada2b4b05d07c",
      "52932ba287dd4ae5bb7f73e9426a1c2f",
      "a0e24cd288074f12b6b88020765ef508",
      "1478f092671648a79a5e1de8c773611c",
      "335605b3daf745558cb9d6dc1a915936",
      "3d58a2e93ea8423382d84714a6ee34a6",
      "7f3cf4b20bdd4cd29f30172954d9b9aa",
      "9e68d8a9866948bea73bb2e54fa0f815",
      "990d3f4fb0a147e59b4b9ced51466799",
      "b1bb2b9900f9498cadeb88a237facd63",
      "7b874ab540c742f2b8d99f9450e325c7",
      "61d12ef9d96f461a8e40e22371dc0980",
      "1369ef9e0c044f7285fde71e83125829",
      "24f49594d1a54e89a10562895fc4afaa",
      "001d3ea3f051427c868d158df1bf803e",
      "e71598d142ff4fcd8d894d9b6bc85ffa",
      "07eb41e03e3f4187a27bc7770ff4b284",
      "6e4b90383866462dad6f3cf3594122a4",
      "350b73c77e914f0a89fcb4fbb8844630",
      "41a112cb8b1f4aa19386a53824d82831",
      "1adf948e8cc24a5798b0b82ce8f6f451",
      "f78f69ce60b7466cbc848f0dd1a8d530",
      "b5eece175c5e4a90b817e5472467ed6a",
      "2d788f1fc7474103be8dae5f4aef02f9",
      "ae41077292b545de9d9ab2e345346a3f",
      "11a4badc306c4a0781b99eb8a3c7f798",
      "5710f59b8072459fbdb5736115891297",
      "a8adf063367b46e6944c541029f49da5",
      "3da1dd8e457a4d75b186712d91c668bf",
      "1f0946806b084f5d87129af48b7d4446",
      "e765e146c84f4cab96b2b49240ae1d1b",
      "13720d61be92443b92df5e27b475f4bd",
      "2c3eb3073cbd45059434d4f6a59eb66e",
      "9e25f6624e53443186cbbf96d6c0fae2",
      "904d24893e4d4ac6a79a177fdfd3b29d",
      "430a4506fe084005a31406829d1b9714",
      "457a9e0cea72438aabec569258ce9486",
      "b894f2f704304c0bb7e0690f0a44e905",
      "c4a19ef3d4f24e8bab8beb4923077a43",
      "4da591579436462c93a61e3720a02315",
      "fc5385ff830c498695722f13072af607",
      "def37be2b350412bb75035925e7ea522",
      "2292445e77984b7181758142610952c8",
      "b1b84e81246d4efb80e06098a13c1902",
      "a44fbb6f9f1b42c2b15eedd3d5a6befe",
      "a31a15aba4c04d3fb6581c0fac02eb60",
      "bc9dbd5fc8354b2a8a35c6f03f349a5f",
      "cd78f87825e24588b7422f454c3d3299",
      "0bc700640d754ed690d1a65c2f73dec4",
      "ac061123a52d452da440f18ed6815c1b",
      "6d7200d456d042a7994db8b14726081d",
      "47f2967c776b4c5491f69c84a6bd2b43",
      "119f7c75881c4344a0a17e2911d779de",
      "244d269da26146048d2ae17c9fcdd393",
      "ca714ec4101848ba9b635b7f21fe9137",
      "5d6b806aea19496a911d9a43b1fcdbe6",
      "2ab84b72ffb341ed97d484313f5bd0b7",
      "306c6469a2534fd88096442b5f52fd8a",
      "b9585503919a47a29d7e5957fe9764f5",
      "6a3e03eee2de46faa31f60c1f74635c5",
      "86d7e71903e649df876ff733d5e8dfd9",
      "ba57dded950b429a867e15ff42c0d607",
      "1299af0c51e54ef59c444a7ec8346792",
      "85ab3ce78b444a279705358574d3af2c",
      "6429ecae6f1d45299b0ee6e2ab39dbbf",
      "1f4eb2db689d48bcbee870a2ec62a752",
      "db57f70865cd4869b7d9c972265ad86c",
      "40f48e31306642d2b5a3529b6fdc1fc1",
      "1728fae0ffd14ba8b52df72e6d130d0c",
      "d8727496f0364f48a4a0c597977864c9",
      "3c198e56129c48fb866782f19c24e0f3",
      "68b5c77f069848e5877c7700f2b04675",
      "6a453eba9e22471ca5166bed27b9cab4",
      "61a93d82fd724e6c8331e261766c3786",
      "d0a4eeddc43f43ac8f9150fa671f433d",
      "958a43f64c7e4e73820646c13f55ea03",
      "548ead65c5e2473b9504a0cb6434f984",
      "b6c26d3dfef94c4abc63359390f615b6",
      "8f8aa06d00bd440e885129c4d6f3726b",
      "a4a7003f424f4ecdaa208d21c1892335",
      "879769d7b3104926ab382a9271d8d00d",
      "33091a95def04b6f906b5bb5b67ac374",
      "c65fe5cd54e14edeb0b73f344ca3871e",
      "f1b7e154fe6947e885f877074e81e271",
      "2f9c776f32184524a266910336f0dc72",
      "41fa1a788da64b26a0088f5fe93d3536",
      "e9db69e8b7814c439883f4fb0370c2b3",
      "d888a5a6495c491aa5890e63207169c8",
      "2f99b182680e4ec2abcde8114ced1f5d",
      "0ed30b3b16a3483fbfabefbfc8eb952d",
      "277ffe11d6104384baf555afaa7333f9",
      "f3a68875f91549c1b73e260cb97d594c",
      "7db042f95d9b40fdae70132b02bf6c1a",
      "6b84773c05cc4fb9a0fbbee0699d7bae",
      "0de719ce801d4464a4c59a0be3967d34",
      "fa63303716e54da3913806a074fd3a20",
      "775a6b89711d4f4faabb9d57f3d4a52c",
      "848373b1f5f24fc4aa9eabed2e3a2b44",
      "a57fd04fa59048de820d39aa981d9b5b",
      "2ab2b4ea6e6c4dfa86f7994187153b86",
      "3b113edcea434050aafd2a61581e865a",
      "35be8119944b41a28816a55b11ab89dd",
      "42c05d9274714ef3acbc4b7c2092d4ab",
      "e0137ccccfe445aab50567afd6976290",
      "89418980dd2046e0a83eaf50681e309f",
      "0617485403fc408f97d2e5d8af4e784e",
      "9453b0940e9546dd8f9fe49f1a380384",
      "8e8ea17950cd4a21bd1024abe225e803",
      "81340db735f74bd3ad0e13624ac7f2af",
      "c2a13809ddcb41e2b2292f7bfb5a21b0",
      "70e57374c3e446c98c99820c3d10f084",
      "ad1fa2c07b9943b582bab420d3192f0d",
      "4dcf548477314600af53424c35f30c85",
      "5c13077575024567b441957ced6c0cc0",
      "fefd113646c044419c1c2172bac976c1",
      "5d4610feb3044cb78dab30a4cbad131e",
      "96189e4293b94ebaae03bbb1d34725ed",
      "3489a482e8fe4f658e3031a00b491d97",
      "4b8afd8a85684a4e956a80a4287ad5ea",
      "9cafda997f2242e3a34ce9abac986764",
      "5f1f5aceaeea4d44a24d5e6909a74d78",
      "eb99842b55f94ef190ecaeaa6249f7e3",
      "272d056964374781a204f8486e0bbd00",
      "b628e83fe7764a4894b2ff6a8a806323",
      "ba08b96c8441437bbb9cbae561bc15a4",
      "5c39df54526f4680bb307d4af3f6f9c2",
      "5b7c94006eff420f928a91376b553c74",
      "4ee527d08e3f44348255b4690dd247bd",
      "1a6ff32adf7945a89c9e7a719342869b",
      "e2adfdc5d5a24d97b3cba7ef945ba5cf",
      "0e4686cc79c74a4a8b1ffaa980710311",
      "5736f5080dad419ea00e68d1ddbb843f",
      "2db69dcbd3d5455da764bb86837ed040",
      "a79ac075a8cc43dc972b3a4c5afe31a1",
      "5c6ca2bedb064b4a8cb030d92181cf11",
      "d4e97eab512947ab867b4ab71d357137",
      "d1147f17bea348b8b1f4374d268d3342",
      "b0d26baefe8c446eb9814fbb7a15e2f0",
      "d7e3ebfe54e245bf913d931ba0dc3466",
      "dfa85f8de6144fb3aa94852a964e5c34",
      "e339e0034c08465db45c00975dfc7eb8",
      "1f6773992ec14c839a4a255734fcdca8",
      "0f93dbda4fa64221bb6e3a0f56fe8fb5",
      "77a42dd6e5684186811d69342a0cea08",
      "6afd805111104ac7b0aac8ce0ef0b3bf",
      "a3bb37a721024c16b091a6716c16c6c2",
      "ee4e6fe349e2408c8a55b29892c5c85c",
      "a6863f87ecc1448b8dfb5eb529ead2a2",
      "3689188a59624b83b8fd84c5a7f2cbde",
      "c96b3f3fac0a4542ba64f0a727a1efa5",
      "08d82ec951e641ff9bb3f851c3f0ce9b",
      "8b5e5a3f780a409b9f3c6481c4b29727",
      "9e950398de7e493fa622379005e07819",
      "04795d4fcc9a475f95de3c708555b7aa",
      "b8924394a4b442f6a49ac1794e222294",
      "574ffec6646d428e98262afce5b0c033",
      "7f6ee8f1d1dc416cbb5f2e4251709719",
      "abe3d1fe092d4a44adda2baca107806e",
      "468a5d5553e14b64ba661b41011edb56",
      "08535779b48f47a78d053897845e194c",
      "9d2b1fa45448494d87ca732659229e96",
      "5b4bc7153f5d40f68fa3653a999b9a51",
      "e5f7eebb1a3f4685bd914da0c5b24eeb",
      "9a415504b54f4ed39af699f6665e30a0",
      "0a521f42d50245048fd3bd34f40f1cd0",
      "a7fc5892104c45b59fdfb29ce6261d24",
      "00ac34e59c404484b26beb4525462bec",
      "e98bbb8421df437195ce8b3cdd578516",
      "3af0201b36844fbe8075bce1a7d995ec",
      "79be46a514c144cab9051a7fa39d90fb",
      "d6d57c36c00643c580cbdec5eafb8c14",
      "764dc5ceaa8b4f41b149e6fa78b40c2a",
      "88a9a173232041b3851460dc9317875e",
      "7ab28b64773f483fbc5b11b571e05a00",
      "807239f1f7864665b66cbacd41093dc8",
      "c0980b13ece940409251c1e12877dc82",
      "9e588176495f4614b7fbd28dbf34eba7",
      "90b28dbe79524dd991dc525e86df6ddc",
      "e7cd5de6a42141ca81a10a2836c93d10",
      "1cafb86b2c3a49a6984dec1a2c94a5cc",
      "151aec36296440f3947706f36d082e14",
      "5029827bda9e4b2ab244961226ad62cb",
      "946593963de942ed89684ed2fc609a60",
      "91e3360ecf3c45389baf40c5e9ebd26d",
      "987738f18bc24784b7d5b9c43b233efe",
      "bb555c83ae2e49ddbb5ce7abefd011c7",
      "4d457135117f483e853c2a521265626f",
      "b05366400f614cf98a8c66b30ecbc024",
      "adb3533b40af4573a7bd979745dcf0d6",
      "77ad170dfc134304949e3cbc0f8fb378",
      "2f09e5bce16e485e96ab20b6d25c2543",
      "09fda985954b417c9840aa6f2b977101",
      "9be1301fc0f9462c9fbcfe20b5469a47",
      "facd2fcdc81f4cde97e73828cc4e1609",
      "4c776dcb9b0441ea8a0984bb78595847",
      "ccc5bb8f30d64fc1a0a25043ed58d6be",
      "287ea618db03497fa589ef689433a605",
      "c350763c7b5343cd83750f897b478cc9",
      "a4226ef768274272bd519c2210262714",
      "7478b7d610de40ffa0efa51bdef115e5",
      "f836b89ba37d43fea14b5737daabc657",
      "73cdd374b5424663aa62df81f067f59c",
      "5b2d297bf90f4dcb953029e86ed3d41d",
      "8c4efbf4ee504d4fa73c8d0af04ebc7e",
      "402405eab2f842cd91a072cf30fe090f"
     ]
    },
    "id": "3AvXQYK1C_GE",
    "outputId": "f77b106e-2603-48bc-b605-1650f9e92fe7"
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_token.py:89: UserWarning: \n",
      "The secret `HF_TOKEN` does not exist in your Colab secrets.\n",
      "To authenticate with the Hugging Face Hub, create a token in your settings tab (https://huggingface.co/settings/tokens), set it as secret in your Google Colab and restart your session.\n",
      "You will be able to reuse this secret in all of your notebooks.\n",
      "Please note that authentication is recommended but still optional to access public models or datasets.\n",
      "  warnings.warn(\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "1496fa475e7a4384bd45f1de7a233436",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Resolving data files:   0%|          | 0/76 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "1e1a82996a3249ac9ca5f7464ca1e876",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Downloading data:   0%|          | 0/76 [00:00<?, ?files/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "915e4bebf7d0431f9d48d229732e2342",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6338765.json:   0%|          | 0.00/823 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "c19186591570473fbce6bd3e59f6775a",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6378378.json:   0%|          | 0.00/683 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a58526e069634916992e1687f12d4383",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6283125.json:   0%|          | 0.00/2.97k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "df69933c34f54ff48d38dba213f9c53f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6272952.json:   0%|          | 0.00/4.74k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "54d5cf5a3a2c4e28af61616a2848c51d",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6485334.json:   0%|          | 0.00/3.27k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "004f851050d544dab22fc2fcfcf439da",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6402865.json:   0%|          | 0.00/306 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "67da3517559f42338fb6c38dee73ef67",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6399305.json:   0%|          | 0.00/1.98k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "3a5c1b1aea6241989625d496017d2f45",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6431339.json:   0%|          | 0.00/298 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "ca62ef9919de4fadb24f2bf90583732b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6378407.json:   0%|          | 0.00/8.30k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e651b4db6a0840dd837c72ade9578223",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6431922.json:   0%|          | 0.00/438 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "923d0c27ced947dfadf8ec315cf1bd9a",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6233728.json:   0%|          | 0.00/7.78k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "131f29da9f324f32bcdea4313554001b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6425277.json:   0%|          | 0.00/509 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e5e484663e7b4c40ac9da190046c8378",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6338764.json:   0%|          | 0.00/2.28k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d431c25a517b42848d1d3e6f0584ccc4",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6272941.json:   0%|          | 0.00/8.08k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "375f681a177b43f2a86da62873ce458b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6503842.json:   0%|          | 0.00/835 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "5eb58b2d990344918adf0c0a5761650e",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6468065.json:   0%|          | 0.00/2.41k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "524c0358619848af9f4c003921d93eff",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6582257.json:   0%|          | 0.00/891 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "c5ec88cb6a02473bb07578fefa381ec1",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6516417.json:   0%|          | 0.00/4.38k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "c45c2c5531bb4ecf814573da5fbf98a9",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6582391.json:   0%|          | 0.00/1.11k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "60bd1cf8b7b5467ca9357c5d7b19c6c4",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6614161.json:   0%|          | 0.00/581 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "63bbca2d680848589177d0e7687713dc",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6584194.json:   0%|          | 0.00/673 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "c714fdc8d75c425c81ba91923d71480d",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6613629.json:   0%|          | 0.00/2.36k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "2aefbacdedcf433b9bde08be21fa308e",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6613520.json:   0%|          | 0.00/6.37k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "3c6b680c0faf4c71b1d49f0f5f7cef1f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6613605.json:   0%|          | 0.00/714 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "728155a9c756404aad9619216386d7e5",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6584249.json:   0%|          | 0.00/508 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "5931ad08687543a8b4587e241a2a7d37",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6639781.json:   0%|          | 0.00/896 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "88d330bad7324949ac0f97474651768f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6614457.json:   0%|          | 0.00/1.45k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "0a29c540be7a4c7b93387cd48aa51489",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6613657.json:   0%|          | 0.00/856 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "22db1df151584313b8083b013ab2ecd9",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6614209.json:   0%|          | 0.00/1.35k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "6db5d0f165ed42fda0cb02a4437f3b98",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6640792.json:   0%|          | 0.00/562 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "6c88c1dcfeee49a6950ff6eb049aeb51",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6643036.json:   0%|          | 0.00/619 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "6183a3e38f7947679314c922d064547f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6643435.json:   0%|          | 0.00/983 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "f021a73c29964feaa3b2ee8c35f4f384",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6643167.json:   0%|          | 0.00/1.30k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b7f4ef93d1c54d3aaa86b8429c720f32",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6643004.json:   0%|          | 0.00/1.29k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d9bd9ee8e1f74d72abbc982e5b00446b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6641048.json:   0%|          | 0.00/987 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "455359668a3f4999941a3dcb0204e9a1",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6696591.json:   0%|          | 0.00/665 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b844247eabba4197970a8a9b81adac8c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6653653.json:   0%|          | 0.00/686 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b83d79e49b4d4da081e6969dd46ef8a9",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6705023.json:   0%|          | 0.00/4.15k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a040bd32ce1e485c866e04d010936cc6",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6640875.json:   0%|          | 0.00/1.16k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "3adefcfede1f4756a183237fd9dce055",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6684216.json:   0%|          | 0.00/2.28k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a13a7f91c4f34017bedc0819654f0814",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6654303.json:   0%|          | 0.00/2.41k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "4032c447151946e888b4951b9dbc0834",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6654000.json:   0%|          | 0.00/9.21k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a47cb3c0fbf24eb29dfcd75ef92cc776",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6643200.json:   0%|          | 0.00/1.43k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "829c5c57f1714a28b216d1f53a29d76e",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6640864.json:   0%|          | 0.00/990 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "402b406d0efe4007a8ad081b13cea037",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6681258.json:   0%|          | 0.00/3.58k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "99a9d6920a5b468482233275414c5e1a",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6781152.json:   0%|          | 0.00/866 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "358ff34b34114033a612d05ad557754a",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6783457.json:   0%|          | 0.00/4.91k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "df20a9ca9c4a4b6ab82f6ad291c1dfd4",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6811186.json:   0%|          | 0.00/4.66k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a2162eeffafd4ead86a82e6926db7805",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6824809.json:   0%|          | 0.00/2.44k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "519c3a1d29dd4a37a0dd7d6e2b5298ff",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6781222.json:   0%|          | 0.00/805 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e208f9dfb38a42479d3f8d8379efaabe",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6843909.json:   0%|          | 0.00/697 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "7047377468a34f8b8d6fec7597247d1a",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6882433.json:   0%|          | 0.00/2.37k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "f069b7d49c834622bc91ad1d8186faff",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6781228.json:   0%|          | 0.00/790 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "8f2a0cfb815c4b9584653e4aeeb7c1eb",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6891781.json:   0%|          | 0.00/1.28k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "ae9ff71d201a4c3fa47b77e403379b40",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6837156.json:   0%|          | 0.00/272 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "29c71b4429044bada4f892e1a1067e10",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6742369.json:   0%|          | 0.00/997 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "6b98261938a04434a9bbb1441fa371d7",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6891767.json:   0%|          | 0.00/1.10k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "14246f6118e64df3842e7a476f55153f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6843914.json:   0%|          | 0.00/287 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "f6dc2ed40db544349f24bddc6100756c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6891753.json:   0%|          | 0.00/2.25k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "9e68d8a9866948bea73bb2e54fa0f815",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6891827.json:   0%|          | 0.00/917 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "350b73c77e914f0a89fcb4fbb8844630",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6825453.json:   0%|          | 0.00/21.5k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "1f0946806b084f5d87129af48b7d4446",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6891829.json:   0%|          | 0.00/1.85k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "fc5385ff830c498695722f13072af607",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6891831.json:   0%|          | 0.00/1.42k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "47f2967c776b4c5491f69c84a6bd2b43",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6897198.json:   0%|          | 0.00/760 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "1299af0c51e54ef59c444a7ec8346792",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6897204.json:   0%|          | 0.00/1.41k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "61a93d82fd724e6c8331e261766c3786",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6897202.json:   0%|          | 0.00/1.08k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "2f9c776f32184524a266910336f0dc72",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6901266.json:   0%|          | 0.00/450 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "fa63303716e54da3913806a074fd3a20",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6891834.json:   0%|          | 0.00/1.34k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "9453b0940e9546dd8f9fe49f1a380384",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6897191.json:   0%|          | 0.00/1.56k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "3489a482e8fe4f658e3031a00b491d97",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6950777.json:   0%|          | 0.00/4.08k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "1a6ff32adf7945a89c9e7a719342869b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6897186.json:   0%|          | 0.00/1.39k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "dfa85f8de6144fb3aa94852a964e5c34",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6897199.json:   0%|          | 0.00/804 [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "08d82ec951e641ff9bb3f851c3f0ce9b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6897179.json:   0%|          | 0.00/1.38k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "5b4bc7153f5d40f68fa3653a999b9a51",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6897194.json:   0%|          | 0.00/1.69k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "88a9a173232041b3851460dc9317875e",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6891839.json:   0%|          | 0.00/2.75k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "91e3360ecf3c45389baf40c5e9ebd26d",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "article_6897213.json:   0%|          | 0.00/4.03k [00:00<?, ?B/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "4c776dcb9b0441ea8a0984bb78595847",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Generating train split:   0%|          | 0/76 [00:00<?, ? examples/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "76\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import lancedb\n",
    "from lancedb.pydantic import LanceModel, Vector\n",
    "from lancedb.embeddings import get_registry\n",
    "\n",
    "from datasets import load_dataset\n",
    "\n",
    "EMBEDDING_MODEL = \"text-embedding-ada-002\"\n",
    "\n",
    "# load dataset\n",
    "dataset_name = \"Prasant/openai-dataset\"\n",
    "dataset = load_dataset(dataset_name)\n",
    "article_df = pd.DataFrame(dataset[\"train\"])\n",
    "\n",
    "# ingest data inside table\n",
    "db = lancedb.connect(\"/tmp/db\")\n",
    "func = get_registry().get(\"openai\").create(name=EMBEDDING_MODEL)\n",
    "\n",
    "\n",
    "class Article(LanceModel):\n",
    "    text: str = func.SourceField()\n",
    "    vector: Vector(func.ndims()) = func.VectorField()\n",
    "    title: str\n",
    "    url: str\n",
    "\n",
    "\n",
    "table = db.create_table(\"help-center\", schema=Article, mode=\"overwrite\")\n",
    "\n",
    "table.add(article_df)\n",
    "\n",
    "print(len(table))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "B2DT-ww-q73d"
   },
   "source": [
    "## Swarm Agents Implementation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "u5Ygx6Lkq0C6",
    "outputId": "9fc278ba-500f-4ea1-e8d8-d72758d95f83"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Starting Swarm CLI 🐝\n",
      "\u001b[90mUser\u001b[0m: What is the pricing of OpenAI API key?\n",
      "\u001b[94mUser Interface Agent\u001b[0m: OpenAI API pricing varies based on the specific API product and usage. Here are some general details:\n",
      "\n",
      "1. **GPT-3.5 and GPT-4 API:**\n",
      "   - These models are typically priced based on the number of tokens (words or word parts) processed in requests to the API.\n",
      "   - The pricing might differ between tokens used in input and output.\n",
      "   - Specific prices can be found on OpenAI's official pricing page or by contacting their sales team.\n",
      "\n",
      "2. **Fine-Tuning:**\n",
      "   - The costs for training custom models may involve additional fees, and variable pricing based on the model and data used for fine-tuning.\n",
      "\n",
      "3. **Other Services:**\n",
      "   - Other AI models and services provided by OpenAI might have different pricing structures.\n",
      "\n",
      "Pricing can also depend on the level of access purchased (e.g., pay-as-you-go vs. committed use) and any relevant discounts for high volume usage or non-profit/educational purposes.\n",
      "\n",
      "For exact, up-to-date pricing, you should consult OpenAI’s official website or directly reach out to their sales team.\n"
     ]
    }
   ],
   "source": [
    "import re\n",
    "\n",
    "import lancedb\n",
    "from swarm import Agent\n",
    "from swarm.repl import run_demo_loop\n",
    "\n",
    "db = lancedb.connect(\"/tmp/db\")\n",
    "table = db.open_table(\"help-center\")\n",
    "\n",
    "\n",
    "def query_lancedb(query, top_k=5):\n",
    "    # Creates embedding vector from user query\n",
    "    query_results = table.search(query).limit(top_k).to_pandas()\n",
    "\n",
    "    return query_results\n",
    "\n",
    "\n",
    "def query_docs(query):\n",
    "    \"\"\"Query the knowledge base for relevant articles.\"\"\"\n",
    "    print(f\"Searching knowledge base with query: {query}\")\n",
    "\n",
    "    query_results = query_lancedb(query)\n",
    "    output = []\n",
    "\n",
    "    print(query_results)\n",
    "    for index, article in query_results.iterrows():\n",
    "        output.append((article[\"title\"], article[\"text\"], article[\"url\"]))\n",
    "\n",
    "    if output:\n",
    "        title, content, _ = output[0]\n",
    "        response = f\"Title: {title}\\nContent: {content}\"\n",
    "        truncated_content = re.sub(\n",
    "            r\"\\s+\", \" \", content[:50] + \"...\" if len(content) > 50 else content\n",
    "        )\n",
    "        print(\"Most relevant article title:\", truncated_content)\n",
    "        return {\"response\": response}\n",
    "    else:\n",
    "        print(\"No results\")\n",
    "        return {\"response\": \"No results found.\"}\n",
    "\n",
    "\n",
    "def send_email(email_address, message):\n",
    "    \"\"\"Send an email to the user.\"\"\"\n",
    "    response = f\"Email sent to: {email_address} with message: {message}\"\n",
    "    return {\"response\": response}\n",
    "\n",
    "\n",
    "def submit_ticket(description):\n",
    "    \"\"\"Submit a ticket for the user.\"\"\"\n",
    "    return {\"response\": f\"Ticket created for {description}\"}\n",
    "\n",
    "\n",
    "def transfer_to_help_center():\n",
    "    \"\"\"Transfer the user to the help center agent.\"\"\"\n",
    "    return help_center_agent\n",
    "\n",
    "\n",
    "user_interface_agent = Agent(\n",
    "    name=\"User Interface Agent\",\n",
    "    instructions=\"You are a user interface agent that handles all interactions with the user. Call this agent for general questions and when no other agent is correct for the user query.\",\n",
    "    functions=[transfer_to_help_center],\n",
    ")\n",
    "\n",
    "help_center_agent = Agent(\n",
    "    name=\"Help Center Agent\",\n",
    "    instructions=\"You are an OpenAI help center agent who deals with questions about OpenAI products, such as GPT models, DALL-E, Whisper, etc.\",\n",
    "    functions=[query_docs, submit_ticket, send_email],\n",
    ")\n",
    "\n",
    "if __name__ == \"__main__\":\n",
    "    run_demo_loop(user_interface_agent)"
   ]
  }
 ],
 "metadata": {
  "accelerator": "GPU",
  "colab": {
   "gpuType": "T4",
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "name": "python3"
  },
  "language_info": {
   "name": "python"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
